#ifndef AREA_PHILADELPHIA__
#define AREA_PHILADELPHIA__

#include "base.h"
#include "area.h"
#include "options_philadelphia.h"

/** Trida reprezentujici zakladni testovaci sadu Philadelphia.
 * Spolu se tridou PhiladelphiaOptions znaji vsechny jeji instance.
 */
class Philadelphia: public Area {
public:
	/** Defaultni konstruktor. Zinicializuje zakladni tridu a nastavi pozice anten.
	 * \param o nastaveni Philadelphie
	 */
	Philadelphia(Options * o): options((PhiladelphiaOptions *)o), Area(o, 21) { 
		reuse_distances = options->reuse;
		reuse_size = options->reuse_size;
		setAntenaPositions();
	};
private:
	void setAntenaPositions();
	/** Vrati detaily o nastaveni Philadelphie.
	 * \return informace o nastaveni (cislo zname instance)
	 */
	std::string getDetail() {
		if (options->problem == 0) return "Philadelphia Unknown (" + IntToStr(size) + ")";
		else return "Philadelphia P" + IntToStr(options->problem);
	}
	PhiladelphiaOptions * options; ///< nastaveni Philadelphie
};

#endif
